Principle of inclusion and exclusion(排容原理)
假設 U 為與集合,其中 |U|=N,令 a1,a2,...,an 為 n 個性質,其中這些性質直接定義在 U 上且 N(ai) 表示 U 中滿足性質 ai 的元素個數。
- 定義
- N(¯ai) 表示 U 中不滿族性質 ai 的元素個數。
- N(aiaj) 表示 U 中同時滿足性質 ai 與 aj 的元素個數。
- N(¯ai¯aj) 表示 U 中同時滿足性質 ai 與 aj 的元素個數。
Lemma 1
若有一數 n 有正因數解,該組解必有一正因數「小於等於」√n。
Proof
若兩正因數都大於 √n ,相乘後不可能為 n
Ex ( 97 清大 )
1 ~ 100 中質數有幾個?
Sol
∵√100=10∴Consider:2,3,5,7令U表示2到100的所有數所成集合,則N=|U|=99a1表示U中大於2且為2的倍數的性質a2表示U中大於3且為3的倍數的性質a3表示U中大於5且為5的倍數的性質a4表示U中大於7且為7的倍數的性質欲求:N(¯a1¯a2¯a3¯a4)⇒100−(⌊1002⌋+⌊1003⌋+⌊1005⌋+⌊1007⌋)+(⌊1006⌋+⌊10015⌋+⌊10035⌋+⌊10010⌋+⌊10014⌋+⌊10021⌋)−(⌊10030⌋+⌊10070⌋+⌊100105⌋+⌊10042⌋)+⌊100350⌋=22−1+4=25
Ex ( 97 台大 ) 尤拉公式說明
n=Pe11×Pe22×Pe33,Piisprime,ei>0Prove:Φ(n)=n×(1−1P1)×(1−1P2)×(1−1P3)
Proof
U={1,...,n},a1={1<x<n|P1|x},a2={1<x<n|P2|x},a3={1<x<n|P3|x}求N(¯a1¯a2¯a3)⇒n−(nP1+nP2+nP3)+(nP1P2+nP2P3+nP1P3)−nP1P2P3=n×(1−(1P1+1P2+1P3)+(1P1P2+1P2P3+1P1P3)−1P1P2P3)=n×(1−1P1)×(1−1P2)×(1−1P3)
Theorem
m 個相異物放置 n 個相異箱子「不允許」空箱的方法數。
|A|=m,|B|=n,m≥n⇒onto(m,n)=∑ni=0(−1)i(ni)(n−i)m ( 由 A 集合至 B 集合的映成函數個數 )
箱子不得為「空」,採用排容原理。
Proof
onto(m,n)=nm−(n1)(n−1)m+(n2)(n−2)m−...+(−1)n−1(nn−1)(1)m+(−1)n(nn)(0)m=n∑i=0(−1)i(ni)(n−i)m
Stirling number of the second kind
<Note> 分堆
m 個相異物放置於 n 個相同箱子「不允許空箱」的方法數,也就是將「映成函數個數」扣除重複計算到相同箱子的個數
- 假設 m,n 為兩個整數,其中 m≥n≥1,定義
S(m,n)=onto(m,n)n!=∑ni=0(−1)i(ni)(n−i)mn!
稱為第二種 Stirling 數,有時記作 {mn} ,另外為了方便起見,當 m<n 時,定義 S(m,n)=0
<Note>
m 個相異物放置於 n 個相同箱子「允許空箱」的方法數 =S(m,n)+S(m,n−1)+S(m,n−2)+…+S(m,2)+S(m,1)
Theorem - 第二種 Stirling 數的遞迴結構
可用在演算法的使用上,通常以「Dynamic programming」的方式撰寫。
S(m+1,n)=S(m,n−1)+S(m,n)
- Dynamic programming ( 直向軸為 m,橫向軸為 n )
1 2 3 4 5 6 7 1 S(1, 1) = 1 - - - - - - 2 S(2, 1) = 1 S(2, 2) = 1 - - - - 3 S(3, 1) = 1 S(3, 2) = 3 S(3, 3) = 1 - - - - 4 S(4, 1) = 1 S(4, 2) = 7 S(4, 3) = 6 S(4, 4) = 1 - - - 5 S(5, 1) = 1 S(5, 2) = 15 S(5, 3) = 25 S(5, 4) = 10 S(5, 5) = 1 - - 6 S(6, 1) = 1 S(6, 2) = 31 S(6, 3) = 90 S(6, 4) = 65 S(6, 5) = 15 S(6, 6) = 1 -
- 使用方法
- 欲求 onto(6,3)+onto(6,4)
- 查表加上轉換後:90×3!+65×4!
Proof ( 組合證法 )
- S(m+1, n):m+1 個相異物分成 n 堆,固定一物 A
- A 為邊緣人⇒S(m,n−1)
- A 有孤單病,所以在 n 堆中挑一堆進入 ⇒S(m,n)×n